﻿Imports System.Data

Partial Class Interfaz_frmBusDocumentosRecibidos
    Inherits System.Web.UI.Page
    Dim CL As New ControladorLogica
    Dim dtDatos As New DataTable
    Dim dataset As New DataSet
    Dim dtDatos2 As New DataTable
    Dim dataset2 As New DataSet
    Dim data As New DataTable
    Dim data2 As New DataTable

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If CL.visibilidadesFormsInternos("Busqueda", Session("user").ToString) = False Then
            Response.Redirect("Index.aspx")
        End If
        Dim arrayProveedor As New ArrayList
        Dim ArrayNumFact As New ArrayList
        Dim i As Integer

        arrayProveedor = CL.ObtenerProveedor()
        ArrayNumFact = CL.obtenerFacturaRecibida()
        PanelItemFE.Visible = False

        'se guardan datos en secion para el positback de la pagina respecto al los datos del datagridview
        If Session("busquedaFacturaRecibida") Is Nothing Then
            Session("busquedaFacturaRecibida") = dtDatos
        Else
            dtDatos = DirectCast(Session("busquedaFacturaRecibida"), DataTable)
        End If

        If Session("busquedaFacturaRecibidaITEM") Is Nothing Then
            Session("busquedaFacturaRecibidaITEM") = dtDatos2
        Else
            dtDatos2 = DirectCast(Session("busquedaFacturaRecibidaITEM"), DataTable)
        End If


        If Not Page.IsPostBack Then
            For i = 0 To arrayProveedor.Count - 1
                DropFactCliente.Items.Add(DirectCast(arrayProveedor.Item(i), Proveedor).Rut)
            Next

            For i = 0 To ArrayNumFact.Count - 1
                DropFactNumFact.Items.Add(DirectCast(ArrayNumFact.Item(i), FacturaRecibida).ID)
            Next

            DropFactFecha1.Items.Add("Enero")
            DropFactFecha1.Items.Add("Febrero")
            DropFactFecha1.Items.Add("Marzo")
            DropFactFecha1.Items.Add("Abril")
            DropFactFecha1.Items.Add("Mayo")
            DropFactFecha1.Items.Add("Junio")
            DropFactFecha1.Items.Add("Julio")
            DropFactFecha1.Items.Add("Agosto")
            DropFactFecha1.Items.Add("Septiembre")
            DropFactFecha1.Items.Add("Octubre")
            DropFactFecha1.Items.Add("Noviembre")
            DropFactFecha1.Items.Add("Diciembre")

            DropFactFecha2.Items.Add("2011")
            DropFactFecha2.Items.Add("2012")
            DropFactFecha2.Items.Add("2013")
            DropFactFecha2.Items.Add("2014")
            DropFactFecha2.Items.Add("2015")
            DropFactFecha2.Items.Add("2016")
            DropFactFecha2.Items.Add("2017")
            DropFactFecha2.Items.Add("2018")
            DropFactFecha2.Items.Add("2019")
            DropFactFecha2.Items.Add("2020")
            DropFactFecha2.Items.Add("2021")
            DropFactFecha2.Items.Add("2022")

            dtDatos.Columns.Add(New DataColumn("FOLIO"))
            dtDatos.Columns.Add(New DataColumn("FECHA"))
            dtDatos.Columns.Add(New DataColumn("NETO"))
            dtDatos.Columns.Add(New DataColumn("IVA"))
            dtDatos.Columns.Add(New DataColumn("TOTAL"))


            dtDatos2.Columns.Add(New DataColumn("CODITEM"))
            dtDatos2.Columns.Add(New DataColumn("NOMBRE"))
            dtDatos2.Columns.Add(New DataColumn("CANTIDAD"))
            dtDatos2.Columns.Add(New DataColumn("DESCRIPCION"))
            dtDatos2.Columns.Add(New DataColumn("PRECIOUNITARIO"))

            Me.GridFactura.DataBind()
            Me.GridFactura.DataSource = Me.dtDatos

            Me.GridItemFact.DataBind()
            Me.GridItemFact.DataSource = Me.dtDatos2

        End If

        Me.GridFactura.DataBind()
        Me.GridFactura.DataSource = Me.dtDatos

        Me.GridItemFact.DataBind()
        Me.GridItemFact.DataSource = Me.dtDatos2
    End Sub

#Region "Funciones"
    Public Sub Mensaje(ByVal msg As String)
        Dim alertScript As String = "<script language=JavaScript runat=server>"
        alertScript &= "alert('" & msg & "');"
        alertScript &= "</script>"
        ClientScript.RegisterClientScriptBlock(Page.GetType(), "clientScrip", alertScript)
    End Sub

    Private Sub buscar()
        Dim query As String
        Dim array As New ArrayList
        Dim arrayItem As New ArrayList
        Dim i As Integer

        If CheckFacCliente.Checked = True Then
            query = "select * from facturarecibida where fkproveedor ='" + Me.DropFactCliente.SelectedValue + "'"
            array = CL.obtenerFacturaRecibida(query)
        Else
            If CheckFactNumFact.Checked = True Then
                query = "select * from facturarecibida where folio = " + DropFactNumFact.SelectedValue.ToString
                array = CL.obtenerFacturaRecibida(query)
                query = "select * from itemfacturarecibida where fkfacturarecibida = " + DropFactNumFact.SelectedValue.ToString
                arrayItem = CL.obtenerItemFacturaRecibida(query)
            Else
                If CheckFactFecha.Checked = True Then
                    'query = "select * from requisicion where id = '" + DropRQNumRQ.SelectedValue.ToString + "'"
                    'array = CL.ObtenerRequisicion(query)
                Else
                    query = "select * from facturarecibida"
                    array = CL.obtenerFacturaRecibida(query)
                End If
            End If
        End If

        Try
            If array.Count = 0 Then
                Me.Mensaje("No existe ninguna presupuesto asociado al criterio de busqueda seleccionado")
            Else
                For i = 0 To array.Count - 1
                    Dim drDatos As DataRow = dtDatos.NewRow
                    drDatos.Item("FOLIO") = DirectCast(array.Item(i), FacturaRecibida).ID
                    drDatos.Item("FECHA") = DirectCast(array.Item(i), FacturaRecibida).Fecha
                    drDatos.Item("NETO") = DirectCast(array.Item(i), FacturaRecibida).Neto
                    drDatos.Item("IVA") = DirectCast(array.Item(i), FacturaRecibida).Iva
                    drDatos.Item("TOTAL") = DirectCast(array.Item(i), FacturaRecibida).Total
                    dtDatos.Rows.Add(drDatos)
                Next
                Me.GridFactura.DataSource = dtDatos
                Me.GridFactura.DataBind()
                Me.GridFactura.ForeColor = Drawing.Color.Blue

                'LLENA GRIDVIEW DE ITEM
                If CheckFactNumFact.Checked = True Then
                    PanelItemFE.Visible = True
                    For i = 0 To arrayItem.Count - 1
                        Dim drDatos2 As DataRow = dtDatos2.NewRow
                        drDatos2.Item("CODITEM") = DirectCast(arrayItem.Item(i), Item).CodItem
                        drDatos2.Item("NOMBRE") = DirectCast(arrayItem.Item(i), Item).Nombre
                        drDatos2.Item("CANTIDAD") = DirectCast(arrayItem.Item(i), Item).Cantidad
                        drDatos2.Item("DESCRIPCION") = DirectCast(arrayItem.Item(i), Item).Descripcion
                        drDatos2.Item("PRECIOUNITARIO") = DirectCast(arrayItem.Item(i), Item).PrecioUnitario
                        dtDatos2.Rows.Add(drDatos2)
                    Next
                    Me.GridItemFact.DataSource = dtDatos2
                    Me.GridItemFact.DataBind()
                    Me.GridItemFact.ForeColor = Drawing.Color.Blue
                End If

            End If
        Catch ex As Exception
            Me.Mensaje(ex.ToString)
        End Try

        clean()

    End Sub

    Private Sub clean()
        Me.CheckFacCliente.Checked = False
        Me.CheckFactNumFact.Checked = False
        Me.CheckFactFecha.Checked = False
    End Sub

    Private Sub vaciaGrid()
        data = DirectCast(Session("busquedaFacturaRecibida"), DataTable)
        If Not data Is Nothing Then
            data.Clear()
            Session("busquedaFacturaRecibida") = data
        End If
        data2 = DirectCast(Session("busquedaFacturaRecibidaITEM"), DataTable)
        If Not data Is Nothing Then
            data.Clear()
            Session("busquedaFacturaRecibidaITEM") = data
        End If
    End Sub
#End Region

#Region "Botones"

    Protected Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button3.Click
        Me.vaciaGrid()
        Me.buscar()
    End Sub
#End Region
   
End Class
